' Program to grab icons, sprites, and bobs from IFF file on disk.
' Version 1.01, D.E. Lewis.
' Release date 11 March 1991.
'
'
' Declare global variables
Global ICON_START_X,ICON_START_Y,ICON_END_X,ICON_END_Y
Global ICON_NUMBER,ICON_EDIT
Global _SPRITE_NUMBER,_SPRITE_EDIT
Global FILE_LOADED
Global _SCREEN
'
' Initialise global variables
ICON_START_X=-1
ICON_START_Y=-1
ICON_END_X=-1
ICON_END_Y=-1
ICON_NUMBER=0 : ICON_EDIT=1
_SPRITE_NUMBER=0 : _SPRITE_EDIT=1
FILE_LOADED=False
_SCREEN=0
'
' Initialise sprite and icon banks.
Erase 1
Erase 2
'
Auto View Off
' Setup help screens.
Unpack 6 To 3
Unpack 7 To 4
'
' Setup menu screen
Unpack 5 To 0
Reserve Zone 20
'
' Load IFF file
Set Zone 1,31,79 To 160,95
'
' Erase icon bank
Set Zone 2,31,99 To 160,115
'
' Load icon bank
Set Zone 3,31,119 To 160,135
'
' Save icon bank
Set Zone 4,31,139 To 160,155
'
' Grab icon
Set Zone 5,31,159 To 160,175
'
' Icon number increment
Set Zone 6,31,179 To 44,191
'
' Icon number decrement
Set Zone 7,31,194 To 44,206
'
Ink 1,0 : Text 52,193,"001"
Ink 1,0 : Text 83,199,"000"
'
' Help
Set Zone 8,166,79 To 209,95
'
' Quit
Set Zone 9,215,79 To 258,95
'
' Erase sprite bank
Set Zone 10,166,99 To 314,115
'
' Load sprite bank
Set Zone 11,166,119 To 314,135
'
' Save sprite bank
Set Zone 12,166,139 To 314,155
'
' Grab sprite
Set Zone 13,166,159 To 314,175
'
' Sprite number increment
Set Zone 14,166,179 To 179,191
'
' Sprite number decrement
Set Zone 15,166,194 To 179,206
'
Ink 1,0 : Text 187,193,"001"
Ink 1,0 : Text 218,199,"000"
' End of menu screen setup.
'
Auto View On
View
'
'
Do
K=Mouse Click
If K=1 Then Proc OPTION
If K=2 Then Proc SWITCH_SCREEN
Loop
'
Procedure SWITCH_SCREEN
If FILE_LOADED
If _SCREEN=0
_SCREEN=2
Change Mouse 2
Screen To Front 2 : Screen 2
Else
_SCREEN=0
Change Mouse 1
Screen To Front 0 : Screen 0
End If
End If
End Proc
'
Procedure OPTION
If _SCREEN=0
Proc MENU
Else
Proc SELECT_ICON
End If
End Proc
'
' Define icon, sprite, and bob selection procedure.
Procedure SELECT_ICON
If FILE_LOADED
If ICON_START_X<>-1
Screen Copy 1 To 2 : Rem restore screen
End If
ICON_START_X=X Screen(X Mouse)
ICON_START_Y=Y Screen(Y Mouse)
ICON_END_X=ICON_START_X
ICON_END_Y=ICON_START_Y
Repeat
MOUSE_X=X Screen(X Mouse)
MOUSE_Y=Y Screen(Y Mouse)
If(MOUSE_X<>ICON_END_X) or(MOUSE_Y<>ICON_END_Y)
Screen Copy 1 To 2 : Rem restore screen
ICON_END_X=MOUSE_X
ICON_END_Y=MOUSE_Y
Ink 1 : Box ICON_START_X,ICON_START_Y To ICON_END_X,ICON_END_Y
End If
Until(Mouse Key and %1)=0
End If
End Proc
'
Procedure MENU
Z=Mouse Zone
If Z<>0
On Z Proc FILE_LOAD,ICON_BANK_ERASE,ICON_BANK_LOAD,ICON_BANK_SAVE,ICON_GRAB,ICON_EDIT_INC,ICON_EDIT_DEC,HELP,QUIT,_SPRITE_BANK_ERASE,_SPRITE_BANK_LOAD,_SPRITE_BANK_SAVE,_SPRITE_GRAB,_SPRITE_EDIT_INC,_SPRITE_EDIT_DEC